package top.mccat.common.core.domain.bk;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import top.mccat.common.annotation.Excel;
import top.mccat.common.core.domain.BaseEntity;

/**
 * 销售记录对象 bk_sale
 * 
 * @author Raven
 * @date 2023-01-10
 */
public class BkSale extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 销售记录流水表 */
    private Integer id;

    /** 销售记录日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "销售记录日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date saleDate;

    /** 销售记录已付货款 */
    @Excel(name = "销售记录已付货款")
    private BigDecimal paymentPaid;

    /** 销售记录未付货款 */
    @Excel(name = "销售记录未付货款")
    private BigDecimal paymentUnpaid;

    /** 销售记录是否开具发票，默认未开具，未开具0，增值税1，普通票2 */
    @Excel(name = "发票状态", dictType="bk_invoice_status")
    private Integer invoice;

    /** 销售者 */
    @Excel(name = "销售者")
    private String seller;

    /** 本次销售数量 */
    @Excel(name = "本次销售数量")
    private Double saleQuantity;

    /** 本次销售价格 */
    @Excel(name = "本次销售价格")
    private BigDecimal salePrice;

    @Excel(name = "商品名称")
    private String productName;

    @Excel(name = "商品型号")
    private String productModel;

    private Long productId;

    private Long supplierId;

    @Excel(name = "商品状态", dictType = "bk_product_enable")
    private Integer productEnable;

    private Long customerId;

    @Excel(name = "付款客户名称")
    private String customerName;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }
    public void setSaleDate(Date saleDate) 
    {
        this.saleDate = saleDate;
    }

    public Date getSaleDate() 
    {
        return saleDate;
    }
    public void setPaymentPaid(BigDecimal paymentPaid) 
    {
        this.paymentPaid = paymentPaid;
    }

    public BigDecimal getPaymentPaid() 
    {
        return paymentPaid;
    }
    public void setPaymentUnpaid(BigDecimal paymentUnpaid) 
    {
        this.paymentUnpaid = paymentUnpaid;
    }

    public BigDecimal getPaymentUnpaid() 
    {
        return paymentUnpaid;
    }
    public void setInvoice(Integer invoice) 
    {
        this.invoice = invoice;
    }

    public Integer getInvoice() 
    {
        return invoice;
    }
    public void setSeller(String seller) 
    {
        this.seller = seller;
    }

    public String getSeller() 
    {
        return seller;
    }
    public void setSaleQuantity(Double saleQuantity)
    {
        this.saleQuantity = saleQuantity;
    }

    public Double getSaleQuantity()
    {
        return saleQuantity;
    }
    public void setSalePrice(BigDecimal salePrice) 
    {
        this.salePrice = salePrice;
    }

    public BigDecimal getSalePrice() 
    {
        return salePrice;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductModel() {
        return productModel;
    }

    public void setProductModel(String productModel) {
        this.productModel = productModel;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Integer getProductEnable() {
        return productEnable;
    }

    public void setProductEnable(Integer productEnable) {
        this.productEnable = productEnable;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("saleDate", getSaleDate())
            .append("paymentPaid", getPaymentPaid())
            .append("paymentUnpaid", getPaymentUnpaid())
            .append("invoice", getInvoice())
            .append("seller", getSeller())
            .append("saleQuantity", getSaleQuantity())
            .append("salePrice", getSalePrice())
            .append("productName",getProductName())
            .append("productModel",getProductModel())
            .append("productId",getProductId())
            .append("supplierId",getSupplierId())
            .append("productEnable",getProductEnable())
            .toString();
    }
}
